查看原文
其他

JPA、Hibernate、Spring Data JPA 之间的关系,看完你就明白了!

java思维导图 开源中国 2018-08-21


作者:java思维导图

链接:

https://my.oschina.net/u/3080373/blog/1828589


什么是JPA?


全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。


为我们提供了:


1)ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;


如:@Entity、@Table、@Column、@Transient等注解。


 2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。


如:entityManager.merge(T t);


 3)JPQL查询语言:通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。


如:from Student s where s.name = ?


但是:


JPA仅仅是一种规范,也就是说JPA仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现,而Hibernate就是实现了JPA接口的ORM框架。


也就是说:


JPA是一套ORM规范,Hibernate实现了JPA规范!如图:



什么是 Spring Data JPA?


spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能,如分页、排序、复杂查询等等。


Spring Data JPA 可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。如图:



接口约定命名规则:



实例:



springboot集成spring data jpa只需两步:


第一步:导入maven坐标



第二步:yml配置文件中配置jpa信息



--完--


开源中国征稿开始啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿



推荐阅读

遭微软放弃,Windows 7 终究活成了 XP 的样子

用 Python 分析4W场球赛,2018 世界杯冠军竟是......

从 Java 到 Kotlin,再从 Kotlin 回归 Java

“王者对战”之 MySQL 8 vs PostgreSQL 10

C++ 协程的近况、设计与实现中的细节和决策

点击“阅读原文”查看更多精彩内容

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存